home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2003 April / Gamestar_50_2003-04_cd1.bin / Dema / echelonww_demo.exe / {app} / Modules / l10n_params.py < prev    next >
Text File  |  2003-01-27  |  6KB  |  188 lines

  1. def mergeParams(a, b):
  2.     res = {}
  3.  
  4.     def add(x):
  5.         for key, l in x.items():
  6.             res.setdefault(key, [])
  7.             res[key].extend(l)
  8.  
  9.     add(a)
  10.     add(b)
  11.     return res
  12.  
  13. def check(expected, a, b):
  14.     import copy
  15.     _a = copy.deepcopy(a)
  16.     _b = copy.deepcopy(b)
  17.     res = mergeParams(a, b)
  18.     assert expected == res, res
  19.     assert _a == a
  20.     assert _b == b
  21.  
  22. check({'a':['A'],'b':['B'], }, {'a':['A'], }, {'b':['B'], })
  23. check({'a':['A', 'AA']}, {'a':['A'], }, {'a':['AA'], })
  24.  
  25. def makeKeysParams(keys, params):
  26.     return dict([(key, params)for key in keys])
  27.  
  28. menu_common_params = {'s':['PlayerName'
  29.       ,'PlayerCallsign']
  30.  }
  31.  
  32. event_common_params = mergeParams(menu_common_params,
  33.                                   {
  34.                                     's':['CampaignTitle',
  35.                                     'EventTitle'],
  36.                                     'd':[
  37.                                     'EventDateYear',
  38.                                     'EventDateMonth',
  39.                                     'EventDateDay',
  40.                                     'EventDateHour',
  41.                                     'EventDateMin']
  42.                                     })
  43.  
  44.  
  45. event_common_keys = [
  46.     'Title',
  47.     'Text',
  48.     'Prev',
  49.     'Campaign',
  50.     'Next.Next',
  51.     'Next.Continue']
  52.  
  53. record_keys = event_common_keys+[
  54.     'Info',
  55.     'Attach',
  56.     'Statistics']
  57.  
  58. record_keys_params = dict([(key, event_common_params)for key in record_keys])
  59. record_keys_params['Text'] = mergeParams(record_keys_params['Text'], {'s':['RecordText']})
  60.  
  61. def create(screen, keys_params):
  62.     l10n = {}
  63.     for key, params in keys_params.items():
  64.         format = ''
  65.         for param_type, param_names in params.items():
  66.             format+=''.join(['%('+param_name+')'+param_type for param_name in param_names])
  67.         l10n[screen+'.'+key] = format
  68.     return l10n
  69.  
  70. selectplayer_keys = [
  71.     'Title',
  72.     'PlayersListTitle',
  73.     'PlayerDescTitle',
  74.     'PlayerDesc',
  75.     'PlayerDesc.Campaign',
  76.     'Select',
  77.     'Cancel'
  78.     'CreateNew',
  79.     'NewProfileNameTitle',
  80.     'NewProfileOk',
  81.     'NewProfileCancel']
  82.  
  83. selectplayer_params = menu_common_params
  84. selectplayer_keys_params = makeKeysParams(selectplayer_keys, selectplayer_params)
  85. selectplayer_keys_params['PlayerDesc'] = mergeParams(selectplayer_keys_params['PlayerDesc'],
  86.                                                      {'s':['SelectedPlayerName',
  87.                                                            'SelectedPlayerCallsign',
  88.                                                            'SelectedPlayerCampaignsList']})
  89.  
  90. selectplayer_keys_params['PlayerDesc.Campaign'] = mergeParams(selectplayer_keys_params['PlayerDesc.Campaign'],
  91.                                                      {'s':['CampaignTitle',
  92.                                                            'CampaignLastEventTitle'],
  93.                                                       'd':['CampaignLastEventDate'+unit for unit in ['Year', 'Month', 'Day', 'Hour', 'Min']]})
  94.  
  95. class serverslist:
  96.     serverlists_indeces = map(str, range(1, 6))
  97.     serverlists = ["ServerList"+i for i in serverlists_indeces]
  98.     _keys = [
  99.         'Title',
  100.         'ServerListTitle.LAN',
  101.         'ServerListTitle.GameSpy']+\
  102.         ["ServerList"+i+".Title" for i in serverlists_indeces]+\
  103.         serverlists+\
  104.         ['RefreshFromGameSpy',
  105.         'RefreshFromLAN',
  106.         'AddressText',
  107.         'Join',
  108.         'Create',
  109.         'Back']
  110.     _params = menu_common_params
  111.     _keys_params = makeKeysParams(_keys, _params)
  112.     for l in serverlists:
  113.         _keys_params[l] = mergeParams(_keys_params[l], {
  114.             's':['ServerName',
  115.                  'ServerType',
  116.                  'CampaignTitle'
  117.                  'MissionTitle',
  118.                  'MissionType'],
  119.             'd':['ServerPing',
  120.                  'ServerPlayers',
  121.                  'ServerPlayersMax',
  122.                  ]})
  123.  
  124. class ServerOpt:
  125.     _keys = [
  126.             "Title", 
  127.             "ServerNameTitle", 
  128.             "ServerOptionsTitle", 
  129.             "NumberOfPlayersTitle", 
  130.             "NumberOfConnectionsTitle", 
  131.             "TeamplayOptionsTitle", 
  132.             "KillLimitTitle", 
  133.             "TimeLimitTitle",
  134.             "PublishOnGameSpy", 
  135.             "EnableColorNames", 
  136.             "NeedToConfirmVictories", 
  137.             "CanStealVictories", 
  138.             "Ok", 
  139.             "Default", 
  140.             "Back",]
  141.     _params = menu_common_params
  142.     _keys_params = makeKeysParams(_keys, _params)
  143.  
  144. class EngBay:
  145.     _keys = ["Title", 
  146.             "DescriptionTitle", 
  147.             "CraftsListTitle", 
  148.             "PrimaryListTitle", 
  149.             "SecondaryListTitle", 
  150.             "RocketListTitle",
  151.             "Default", 
  152.             "Chat", 
  153.             "Ok", 
  154.             "Cancel"]
  155.     _params = menu_common_params
  156.     _keys_params = makeKeysParams(_keys, _params)
  157.  
  158. class Connecting:
  159.     _keys = ['Text1', 'Text2', 'Cancel']
  160.     _params = mergeParams(menu_common_params,
  161.                           {'s':['ServerName']})
  162.     _keys_params = makeKeysParams(_keys, _params)
  163.  
  164. class Exit:
  165.     _keys = ['Text', 'Yes', 'No', 'Restart']
  166.     _params = menu_common_params
  167.     _keys_params = makeKeysParams(_keys, _params)
  168.  
  169. class Error:
  170.     _keys = ['Title', 'Error', 'Ok']
  171.     _params = menu_common_params
  172.     _keys_params = makeKeysParams(_keys, _params)
  173.  
  174.  
  175. _screens_l10n = {}
  176. l10n = {'Menu':_screens_l10n}
  177. def add(screen_name, keys_params):
  178.     _screens_l10n[screen_name] = create(screen_name, keys_params)
  179.  
  180. add('RecordScreen', record_keys_params)
  181. add('SelectPlayerScreen', selectplayer_keys_params)
  182. add('ServerListScreen', serverslist._keys_params)
  183. add('ServerOptScreen', ServerOpt._keys_params)
  184. add('EngBayScreen', EngBay._keys_params)
  185. add('ConnectingScreen', Connecting._keys_params)
  186. add('ExitScreen', Exit._keys_params)
  187. add('ErrorScreen', Error._keys_params)
  188.